package main

import "fmt"

type student2 struct {
	name string
	age int
	sex string
	englishscore float64
	mathscore float64
	chinesescore float64
}

//定义了一个接收者实现类函数getsum，用来计算成绩之和，有返回值float64类型，
func (s student2) getsum() float64 {
	sum:=s.englishscore+s.mathscore+s.chinesescore
	return sum
}

//创建了一个接收者实现类方法getavg，用来计算平均分，有返回值float64
func (s student2) getavg() float64  {
	sum:=s.getsum() //这个地方就一用再计算总成绩了．因为都是属于同一个结构体类student2，所以都可以互相调用．
	//直接调用s.getsum就是总成绩．传给一个变量sum,然后再用sum/3就计算出平均分了，返回avg变量
	avg:=sum/3
	return avg
}

func (s student2) printInfo()  {
	fmt.Printf("姓名：%s,年龄:%d,性别：%s\n",s.name,s.age,s.sex)
	fmt.Printf("\t英语成绩:%.2f,数学成绩:%.2f,语文成绩：%.2f\n",s.englishscore,s.mathscore,s.chinesescore)
	fmt.Printf("\t总分：%.2f,平均分：%.2f\n",s.getsum(),s.getavg())
	//因为都是属于本类，所以打印输出里还可以直接调用此方法就可以得到总分和平均分数据了．
}

func main()  {
	s1:=student2{"王二小",19,"男",69.5,43.5,90.5}
	s1.printInfo()
}
